En el ámbito de los sistemas computacionales, concurrente a nivel de aplicación es la superposición intencional de flujos lógicos de control para mejorar el rendimiento y la respuesta. Es una abstracción funcional: un programa se divide en tareas independientes que pueden ser intercaladas o ejecutadas en paralelo.
1. La Taxonomía de la Concurrente
Los desarrolladores generalmente eligen entre tres mecanismos fundamentales para gestionar estos flujos concurrentes:
- Procesos: Alta aislamiento con espacios de direcciones separados; requiere IPC mediado por el núcleo.
- Multiplexión de Entrada/Salida: Un único flujo que cambia manualmente entre eventos "listos" (máquinas de estado).
- Hilos: Flujos ligeros que comparten un único espacio de direcciones virtuales para facilitar el intercambio de datos.
2. Ejecución Lógica vs. Física
Si bien todos los programas paralelos son concurrentes, no todos los programas concurrentes son paralelos. El paralelismo es la ejecución física de flujos en núcleos de hardware separados. La concurrencia es el diseño lógico que permite que dicha ejecución ocurra.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>